Algunos programas utilizan rutas de acceso a los programas que aún no existen. Con el fin de satisfacer a estos programas, hay que crear una serie de enlaces simbólicos que serán sustituidos por ficheros reales durante el transcurso de este capítulo después de que el software se ha instalado:
ln -sv /tools/bin/{bash,cat,echo,pwd,stty} /bin ln -sv /tools/bin/perl /usr/bin ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib sed 's/tools/usr/' /tools/lib/libstdc++.la > /usr/lib/libstdc++.la ln -sv bash /bin/sh
Históricamente, Linux mantiene una lista de los sistemas de archivos montados en el archivo /etc/mtab . Los núcleos modernos mantienen esta lista interna y la expone al usuario a través del sistema de archivos /proc. Para satisfacer las utilidades que esperan la presencia de /etc/mtab , cree el siguiente enlace simbólico:
ln -sv /proc/self/mounts /etc/mtab
A fin de que el usuario pueda entrar al sistema y para que el nombre "root" sea reconocido, debe tener las entradas apropiadas en los archivos /etc/passwd
y
/etc/group
files.
Cree el fichero /etc/passwd
ejecutando el siguiente comando:
cat > /etc/passwd << "EOF"
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/dev/null:/bin/false
nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
EOF
La contraseña real para root
(la "x" que se utiliza aquí es sólo un sustituto) se establecerá más adelante.
Cree el fichero /etc/group
ejecutando el siguiente comando:
cat > /etc/group << "EOF"
root:x:0:
bin:x:1:
sys:x:2:
kmem:x:3:
tape:x:4:
tty:x:5:
daemon:x:6:
floppy:x:7:
disk:x:8:
lp:x:9:
dialout:x:10:
audio:x:11:
video:x:12:
utmp:x:13:
usb:x:14:
cdrom:x:15:
mail:x:34:
nogroup:x:99:
EOF
Los grupos creados no son parte de ningún estándar, son grupos escogidos en parte por las exigencias de la configuración de Udev en este capítulo, y en parte por la práctica común empleada por una serie de distribuciones Linux existentes. El Linux Standard Base (LSB, disponible en http://www.linuxbase.org) recomienda sólo eso, además del grupo root con un ID de grupo (GID) de 0, un grupo bin con GID 1 debe estar presente. Todos los demás nombres de grupos y sus GID pueden ser elegidos libremente por el usuario, pues los programas correctamente escritos no dependen del número GID, sino que utilizan el nombre del grupo.
Para eliminar el "I have no name!" que viene apareciendo hasta ahora, iniciar un nuevo shell. Teniendo en cuenta que se instaló Glibc completamente en el capítulo 5 y los archivos /etc/passwd
y /etc/group
se han creado, el nombre de usuario y nombre de grupo aparecerán ahora correctamente:
exec /tools/bin/bash --login +h
Observe el uso de la directiva +h
directive. Esto le indica a bash Esto le indica a +h
Esto le indica a
Ellogin, agetty, y init (entre otros) utilizan una serie de ficheros de registro con información sobre quienes están y estaban dentro del sistema y cuándo. Sin embargo, estos programas no crean dichos ficheros si no existen ya. Los ficheros de registro y sus permisos correctos:
touch /var/log/{btmp,lastlog,wtmp} chgrp -v utmp /var/log/lastlog chmod -v 664 /var/log/lastlog chmod -v 600 /var/log/btmp
El archivo/var/log/wtmp
registra todos los ingresos y salidas. El archivo /var/log/lastlog
registra la última conexión de cada usuario. El archivo /var/log/btmp
file
registra los intentos fallidos de conexión.
El archivo /run/utmp
registra los usuarios que están actualmente dentro Este archivo se crea de forma dinámica en los scripts de arranque.
Para asegurar el funcionamiento del compilador en los apartados siguientes (6.7 a 6.63) crearemos un enlace simbólico en /lib
de nombre ld-linux.so.2
apuntando al interprete ubicado en /tools/lib/ld-2.18.so.
Esto no es del todo necesario pero evita sorpresas a la altura que estamos que nos obligaría a revisar el trabajo hecho en apartados anteriores.
ln -s /tools/lib/ld-2.18.so /lib/ld-linux-so.2